package org.dtrd.modules.flup.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.dtrd.modules.flup.entity.bean.FlupTemplateProjectRelationDetail;
import org.dtrd.modules.flup.entity.bean.FlupTemplateProjectRelationListInfo;
import org.dtrd.modules.flup.entity.po.DtrdRlFlupTemplateProject;
import org.dtrd.modules.flup.entity.request.TemplateProjectRelationRequest;

import java.util.List;

/**
 * <p>
 * 复诊模版和复诊模版内容关系表服务类
 * </p>
 *
 * @author QR
 * @since 2021-12-21
 */
public interface IDtrdRlFlupTemplateProjectService extends IService<DtrdRlFlupTemplateProject> {

    /**
     * 根据 templateId 获取关联的 复诊模版项目id集合
     * @param templateId 复诊模版id
     * @return templateId 获取关联的 复诊模版项目id集合
     */
    List<Integer> getProjectIds(Integer templateId);

    /**
     * 清空模版
     * @return
     */
    int clearTemplate(Integer templateId);

    /**
     * 查询是否包含 projectIds 集合的模版，用于判断是否有重复的项目模版内容
     * @param templateId 复诊模版id
     * @param projectIds 复诊模版项目id集合
     * @return 判断结果
     */
    boolean hasFlupTemplate(Integer templateId, List<Integer> projectIds);

    List<FlupTemplateProjectRelationListInfo> getRlFlupTemplateProjectList(TemplateProjectRelationRequest request);

    FlupTemplateProjectRelationDetail getRlFlupTemplateProject(Integer dataId);

    boolean saveOrUpdateRlFlupTemplateProject(FlupTemplateProjectRelationDetail dto);

    boolean removeRlFlupTemplateProject(Integer dataId);

    boolean hasLinkTemplate(Integer projectId);
}
